iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
自我挑戰組

React 個人讀書會系列 第 8

Day 08 - 畫面呈現:列表渲染

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230923/20103817Kcp0bDhx03.jpg

React 中的列表渲染

在 React 中,列表渲染是一種常見的操作,用於將資料列表渲染為頁面上的元素,這在頁面中是十分常見的一種形式。

https://ithelp.ithome.com.tw/upload/images/20230923/201038176yItXrm43I.png

使用 map 方法進行列表渲染

這邊有一個 people 的陣列,其中包含了三個物件,每個物件都有 idnameage 屬性:

const people = [
  {
    id: 0,
    name: '張三',
    age: 24
  },
  {
    id: 1,
    name: '李四',
    age: 31
  },
  {
    id: 2,
    name: '陳五',
    age: 42
  }
];

在 React 中,當我們需要在 JSX 中使用 JavaScript 時,需要使用大括號 {} 進入 JavaScript 模式,以下是如何使用 map() 函式來渲染 people 陣列的範例:

function List() {
  return (
    <ul>
	  // 使用大括號 {} 進入 JavaScript 模式
      {
        people.map((person) => (
	      <li key={person.id}>{person.name} 今年 {person.age} 歲</li>
	    ))
	  }
    </ul>
  );
}

在這個範例中,我們遍歷 people 陣列,為每筆資料創建一個 <li> 元素。

請注意,我們在每個 <li> 元素上都使用了 key 屬性,key 屬性在 React 列表渲染中十分重要,並且該屬性的值必須是唯一的,通常會使用資料的唯一 ID 作為 key

渲染處理後的資料

const people = [
  {
    id: 0,
    name: '張三',
    age: 24
  },
  {
    id: 1,
    name: '李四',
    age: 31
  }
  {
    id: 2,
    name: '陳五',
    age: 42
  }
];

假如我們希望過濾出 age > 30 的人,可以先使用陣列的 filter 方法進行資料的處理,最後再用這筆過濾的資料去進行列表渲染。

function List() {
  const filteredPeople = people.filter((person) => person.age > 30);

  return (
    <ul>
      {
        filteredPeople.map((person) => (
	      <li key={person.id}>{person.name} 今年 {person.age} 歲</li>
	    ))
	  }
    </ul>
  );
}

结語

React 中的列表渲染是一個在網頁開發中常見且重要的技巧,透過 mapfilter 函式,我們能夠輕鬆處理資料陣列,並將其渲染為頁面上的元素。

我們也了解到在列表渲染過程中,key 屬性的重要性,該屬性的值必須是唯一的,通常會使用資料的唯一 ID 做為 key


上一篇
Day 07 - 元件的溝通橋樑:Props
下一篇
Day 09 - 畫面呈現:條件渲染
系列文
React 個人讀書會30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
肉鬆
iT邦新手 4 級 ‧ 2023-09-23 11:16:47

懂渲染喔

我要留言

立即登入留言